package com.example.luckysystem.service;

import com.example.luckysystem.controller.param.DrawPrizeParam;
import com.example.luckysystem.controller.param.ShowWinningRecordsParam;
import com.example.luckysystem.dao.dataobject.WinningRecordDO;
import com.example.luckysystem.dao.dataobject.WinningRecordDTO;

import java.util.List;

/**
 * @version 1.0
 * @Author shangjialu
 * @Date 2024/12/15 15:54
 * @注释
 */
public interface DrawPrizeService {
    /**
     * 异步抽奖接口
     *
     * @param param
     * 该方法制作两件书
     * 1、将我们的drawprizeparam参数作为消息体传递给队列
     * 2、直接返回
     */
    void drawPrize(DrawPrizeParam param);

    /**
     * 校验抽奖请求
     *
     * @param param
     */
    Boolean checkDrawPrizeParam(DrawPrizeParam param);
    /**
     * 保存中奖者名单
     *
     * @param param
     */
    List<WinningRecordDO> saveWinnerRecords(DrawPrizeParam param);
    /**
     * 删除活动/奖品下的中奖记录
     *
     * @param activityId
     * @param prizeId
     */
    void deleteRecords(Long activityId, Long prizeId);

    List<WinningRecordDTO> getRecords(ShowWinningRecordsParam param);
}
